home *** CD-ROM | disk | FTP | other *** search
/ Pixie Dust / Pixie Dust.iso / pixiedst.mst < prev    next >
Text File  |  1994-03-17  |  11KB  |  306 lines

  1. '**************************************************************************
  2. '*                        PixieDust Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST INSTLAAPLAY   = 101
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST CDROMDRIVE    = 301
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST OPTIONS       = 800
  20. CONST APPHELP       = 900
  21. CONST BADPATH       = 6400
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL CDROMDRV$  ''CD-ROM Drive Letter.
  28. GLOBAL OPTCUR$      ''Option selection from option dialog.
  29.  
  30. CONST WS_VISIBLE=&H10000000
  31. CONST WS_BORDER =&H00800000
  32. CONST WS_CLIPCHILDREN =&H02000000
  33. CONST GWL_STYLE =-16
  34. CONST SW_SHOWMAXIMIZED=3
  35.  
  36. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  37. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG     ''this declaration must all be on one line
  38. DECLARE SUB Install
  39. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  40. DECLARE FUNCTION WinExec LIB "kernel.exe" (szExe$, iShow%) AS INTEGER
  41.  
  42.  
  43. INIT:
  44.  
  45.     hWnd%=HwndFrame()
  46.     i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  47.     j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  48.  
  49.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  50.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  51.  
  52.     SetBitmap CUIDLL$, LOGO
  53.     SetTitle "Pixie Dust Setup"
  54.  
  55.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  56.     IF szInf$ = "" THEN
  57.         szInf$ = GetSymbolValue("STF_CWDDIR") + "PIXIEDST.INF"
  58.     END IF
  59.     ReadInfFile szInf$
  60.  
  61.     OPTCUR$ = "1"
  62.     DEST$ = "C:\PIXIEDST"
  63.     CDROMDRV$ = MID$(GetSymbolValue("STF_SRCDIR"), 1, 1)
  64. '    CDROMDRV$ = "D"
  65.  
  66. '$IFDEF DEBUG
  67.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  68.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  69.     IF IsDriveValid(WinDrive$) = 0 THEN
  70.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  71.         GOTO QUIT
  72.     END IF
  73. '$ENDIF ''DEBUG
  74.  
  75.  
  76. WELCOME:
  77.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  78.     IF sz$ = "CONTINUE" THEN
  79.         UIPop 1
  80.     ELSE
  81.         GOSUB ASKQUIT
  82.         GOTO WELCOME
  83.     END IF
  84.  
  85.  
  86. 'OPTION:
  87. '    SetSymbolValue "RadioDefault", OPTCUR$
  88. 'OPTL1:
  89. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  90. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  91. '
  92. '    IF sz$ = "CONTINUE" THEN
  93. '        UIPop(1)
  94. '    ELSEIF sz$ = "REACTIVATE" THEN
  95. '        GOTO OPTL1
  96. '    ELSE
  97. '        GOSUB ASKQUIT
  98. '        GOTO OPTION
  99. '    END IF
  100.  
  101.  
  102. GETPATH:
  103.     SetSymbolValue "EditTextIn", DEST$
  104.     SetSymbolValue "EditFocus", "END"
  105. GETPATHL1:
  106.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  107.     DEST$ = GetSymbolValue("EditTextOut")
  108.  
  109.     IF sz$ = "CONTINUE" THEN
  110.         IF IsDirWritable(DEST$) = 0 THEN
  111.             GOSUB BADPATH
  112.             GOTO GETPATHL1
  113.         END IF
  114.         UIPop 1
  115.     ELSEIF sz$ = "REACTIVATE" THEN
  116.         GOTO GETPATHL1
  117.     ELSEIF sz$ = "BACK" THEN
  118.         UIPop 1
  119.         GOTO WELCOME
  120. '        GOTO OPTION
  121.     ELSE
  122.         GOSUB ASKQUIT
  123.         GOTO GETPATH
  124.     END IF
  125.  
  126.  
  127.  
  128. GETCDROMDRIVE:
  129.     SetSymbolValue "EditTextIn", CDROMDRV$
  130.     SetSymbolValue "EditFocus", "END"
  131. GETCDROMDRIVEL1:
  132.     sz$ = UIStartDlg(CUIDLL$, CDROMDRIVE, "FEditDlgProc", APPHELP, HELPPROC$)
  133.     CDROMDRV$ = GetSymbolValue("EditTextOut")
  134.     CDROMDRV$ = MID$(CDROMDRV$, 1, 1)
  135.     IF sz$ = "CONTINUE" THEN
  136.          IF LEN(CDROMDRV$) = 0 THEN
  137.              GOSUB BADPATH
  138.              GOTO GETCDROMDRIVEL1
  139.          ENDIF
  140.         UIPop 1
  141.     ELSEIF sz$ = "REACTIVATE" THEN
  142.         GOTO GETCDROMDRIVEL1
  143.     ELSEIF sz$ = "BACK" THEN
  144.         UIPop 1
  145.         GOTO GETPATH
  146.     ELSE
  147.         GOSUB ASKQUIT
  148.         GOTO GETCDROMDRIVE
  149.     END IF
  150.  
  151.  
  152.     Install
  153.  
  154.  
  155.  
  156. QUIT:
  157.     ON ERROR GOTO ERRQUIT
  158.  
  159.     IF ERR = 0 THEN
  160.         dlg% = EXITSUCCESS
  161.     ELSEIF ERR = STFQUIT THEN
  162.         dlg% = EXITQUIT
  163.     ELSE
  164.         dlg% = EXITFAILURE
  165.     END IF
  166. QUITL1:
  167.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  168.     IF sz$ = "REACTIVATE" THEN
  169.         GOTO QUITL1
  170.     END IF
  171.     UIPop 1
  172.  
  173.  
  174.  
  175. INSTALLAAWIN:
  176. INSTALLAAWINL1:
  177.     sz$ = UIStartDlg(CUIDLL$, INSTLAAPLAY, "FInfoDlgProc", APPHELP, HELPPROC$)
  178.     IF sz$ = "CONTINUE" THEN
  179.         i% = DoMsgBox("Make certain to place a checkmark by 'Install MCI Animation Driver' during the installation!", "Important Notice!" , MB_OK)
  180.         i% = WinExec(MakePath(GetSymbolValue("STF_SRCDIR"),"aaplay\aasetup.exe"), 0)
  181.     END IF
  182.     UIPop 1
  183.  
  184.  
  185.  
  186.     END
  187.  
  188.  
  189.  
  190. ERRQUIT:
  191.     i% = DoMsgBox("Setup sources were corrupted, please call (317) 465-0009 for Technical Support!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  192.     END
  193.  
  194.  
  195.  
  196. BADPATH:
  197.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  198.     IF sz$ = "REACTIVATE" THEN
  199.         GOTO BADPATH
  200.     END IF
  201.     UIPop 1
  202.     RETURN
  203.  
  204.  
  205.  
  206. ASKQUIT:
  207.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  208.  
  209.     IF sz$ = "EXIT" THEN
  210.         UIPopAll
  211.         ERROR STFQUIT
  212.     ELSEIF sz$ = "REACTIVATE" THEN
  213.         GOTO ASKQUIT
  214.     ELSE
  215.         UIPop 1
  216.     END IF
  217.     RETURN
  218.  
  219.  
  220.  
  221. '**
  222. '** Purpose:
  223. '**     Builds the copy list and performs all installation operations.
  224. '** Arguments:
  225. '**     none.
  226. '** Returns:
  227. '**     none.
  228. '*************************************************************************
  229. SUB Install STATIC
  230.  
  231.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  232.     CreateDir DEST$, cmoNone
  233.  
  234.     OpenLogFile MakePath(DEST$, "PIXIEDST.ILG"), 0
  235.     WriteToLogFile ""
  236.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  237.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  238.     WriteToLogFile ""
  239.     WriteToLogFile "May have had to create the directory: " + DEST$
  240.     WriteToLogFile ""
  241.  
  242.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  243.     CopyFilesInCopyList
  244.  
  245.     ini$ = MakePath(GetWindowsDir, "PIXIEDST.INI")
  246.  
  247.     CreateIniKeyValue ini$, "General", "InstallDir", DEST$, cmoOverwrite
  248.  
  249.     CreateProgmanGroup "Pixie Dust", "", cmoNone
  250.     ShowProgmanGroup  "Pixie Dust", 1, cmoNone
  251.     WORKDIR$ = CDROMDRV$ + ":\"
  252.     CreateProgmanItem "Pixie Dust", "Pixie Dust", "pixiedst.exe", MakePath(DEST$,"pixiedst.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  253.     CreateProgmanItem "Pixie Dust", "About Pixie Dust", "write.exe "+WORDKIR$+"pixiedst.wri",",0,0,0,"+WORKDIR$, cmoOverwrite
  254.     CreateProgmanItem "Pixie Dust", "About We Make CD's", "write.exe "+WORDKIR$+"wemakecd.wri",",0,0,0,"+WORKDIR$, cmoOverwrite
  255.  
  256. '    CreateProgmanItem "Pixie Dust", "Collector's Village", "pixiedst.exe humdock", MakePath(DEST$,"humdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  257. '    CreateProgmanItem "Pixie Dust", "Story Summaries 1", "pixiedst.exe catdock1", MakePath(DEST$,"catdock1.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  258. '    CreateProgmanItem "Pixie Dust", "Story Summaries 2", "pixiedst.exe catdock2", MakePath(DEST$,"catdock2.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  259. '    CreateProgmanItem "Pixie Dust", "Story Summaries 3", "pixiedst.exe catdock3", MakePath(DEST$,"catdock3.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  260. '    CreateProgmanItem "Pixie Dust", "The Book Club", "pixiedst.exe fuldock", MakePath(DEST$,"fuldock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  261. '    CreateProgmanItem "Pixie Dust", "Indexes", "pixiedst.exe idxdock", MakePath(DEST$,"idxdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  262. '    CreateProgmanItem "Pixie Dust", "Museum of Art", "pixiedst.exe impdock", MakePath(DEST$,"impdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  263. '    CreateProgmanItem "Pixie Dust", "Renoir's Gallery", "pixiedst.exe rendock", MakePath(DEST$,"rendock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  264. '    CreateProgmanItem "Pixie Dust", "Inspiration Point", "pixiedst.exe insdock1", MakePath(DEST$,"insdock1.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  265. '    CreateProgmanItem "Pixie Dust", "Chapel Art Gallery", "pixiedst.exe insdock2", MakePath(DEST$,"insdock2.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  266. '    CreateProgmanItem "Pixie Dust", "The Symphony", "pixiedst.exe midock1", MakePath(DEST$,"midock1.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  267. '    CreateProgmanItem "Pixie Dust", "The Orchestra", "pixiedst.exe midock2", MakePath(DEST$,"midock2.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  268. '    CreateProgmanItem "Pixie Dust", "Miscellany", "pixiedst.exe misdock", MakePath(DEST$,"misdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  269. '    CreateProgmanItem "Pixie Dust", "Funtime Cinema", "pixiedst.exe mmsdock", MakePath(DEST$,"mmsdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  270. '    CreateProgmanItem "Pixie Dust", "Poet's Corner", "pixiedst.exe poedock", MakePath(DEST$,"poedock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  271. '    CreateProgmanItem "Pixie Dust", "Raggedy Ann", "pixiedst.exe ragdock", MakePath(DEST$,"ragdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  272. '    CreateProgmanItem "Pixie Dust", "Ace Travel Agency", "pixiedst.exe scrdock", MakePath(DEST$,"scrdock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  273. '    CreateProgmanItem "Pixie Dust", "Children's Corner", "pixiedst.exe stodock", MakePath(DEST$,"stodock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  274. '    CreateProgmanItem "Pixie Dust", "Timeless Tunes", "pixiedst.exe tundock", MakePath(DEST$,"tundock.ico")+",0,0,0,"+WORKDIR$, cmoOverwrite
  275.  
  276.     AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  277.  
  278.     CloseLogFile
  279.  
  280. END SUB
  281.  
  282.  
  283.  
  284. '**
  285. '** Purpose:
  286. '**     Appends a file name to the end of a directory path,
  287. '**     inserting a backslash character as needed.
  288. '** Arguments:
  289. '**     szDir$  - full directory path (with optional ending "\")
  290. '**     szFile$ - filename to append to directory
  291. '** Returns:
  292. '**     Resulting fully qualified path name.
  293. '*************************************************************************
  294. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  295.     IF szDir$ = "" THEN
  296.         MakePath = szFile$
  297.     ELSEIF szFile$ = "" THEN
  298.         MakePath = szDir$
  299.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  300.         MakePath = szDir$ + szFile$
  301.     ELSE
  302.         MakePath = szDir$ + "\" + szFile$
  303.     END IF
  304. END FUNCTION
  305.  
  306.